1. Field of the Invention
The present invention relates generally to robotics and, more specifically, to software architectures for realizing an intelligence kernel for robots.
2. State of the Art
Historically, robot behaviors have been created for specific tasks and applications. These behaviors have generally been reinvented time and again for different robots and different applications. There has been no sustained attempt to provide a kernel of basic robot competence and decision making that can be used to bootstrap development across many different applications.
Some architectures have been proposed that provide a generic application programming interface (API) for querying various sensors and commanding various actuators; however, many of these architectures have been limited to raw inputs and outputs rather than provide the intelligence and behavior to a robot. As a result, the behavior functionality created for one robot may not be easily ported to new robots. Other architectures have been proposed to allow limited behaviors to port across different robot platforms, but these have generally been limited to specific low-level control systems.
The problem with robots today is that they are not very bright. Current robot “intelligence” is really just a grab-bag of programmed behaviors to keep mobile robots from doing stupid things, like getting stuck in corners or running into obstacles. The promise of wireless robots is that they can be sent into remote situations that are too difficult or dangerous for humans. The reality is that today's robots generally lack the ability to make any decisions on their own and rely on continuous guidance by human operators watching live video from on-board cameras.
Most commercial robots operate on a master/slave principle. A human operator completely controls the movement of the robot from a remote location using robot-based sensors such as video and Global Positioning System (GPS). This setup often requires more than one operator per robot to navigate around obstacles and achieve a goal. As a result very skilled operators may be necessary to reliably direct the robot. Furthermore, the intense concentration needed for controlling the robot can detract from achieving mission goals.
Although it has been recognized that there is a need for adjustable autonomy, robot architectures currently do not exist that provide a foundation of autonomy levels upon which to build intelligent robotic capabilities. Furthermore, robot architectures do not currently exists that provides a foundation of generic robot attributes for porting to a variety of robot platforms.
Therefore, there is a need for a generic robot architecture that provides a framework that is easily portable to a variety of robot platforms and is configured to not only provide hardware abstractions but also provide abstractions for generic robot attributes and robot behaviors.
In addition, there is a need for a robot intelligence kernel that provides a framework of dynamic autonomy that is easily portable to a variety of robot platforms and is configured to control a robot at a variety of interaction levels and across a diverse range of robot behaviors.